- 1402/01/06
- 0
- 64
خطا System.NullReferenceException
با سلام و تبریک سال نو هنگام ذخیره اطلاعات یک سرویس در دیتا بیس با خطا System.NullReferenceException: 'Object reference not set to an instance of an object.' مواجه می شوم
using Application.ShoppingTerminal.Interfaces.Contexts;
using Application.ShoppingTerminal.Services.Buyer.Commands.RegisterBuyer;
using Application.ShoppingTerminal.Services.Seller.Commands.RegisterSeller;
using Domain.ShoppingTerminal.Entities.Buyers;
using Domain.ShoppingTerminal.Entities.Sellers;
using Microsoft.AspNetCore.Mvc;
namespace EndPoint.ShoppingTerminal.Areas.Admin.Controllers
{
[Area("Admin")]
public class BuyerController : Controller
{
private readonly IRegisterBuyerService _registerBuyerService;
private readonly IDataBaseContext _context;
public BuyerController(IRegisterBuyerService registerBuyerService, IDataBaseContext context)
{
registerBuyerService = _registerBuyerService;
_context = context;
}
public IActionResult Index()
{
return View();
}
[HttpGet]
public IActionResult Register()
{
return View();
}
[HttpPost]
public IActionResult Register(Buyer buyer)
{
var result = _registerBuyerService.Execute(
new RequestRegisterBuyerDto()
{
BuyerName = buyer.BuyerName,
Bid = buyer.Bid,
TinB = buyer.TinB,
Bpc = buyer.Bbc,
Tob = buyer.Tob,
Bbc = buyer.Bbc,
Bpn = buyer.Bpn,
BAddress = buyer.BAddress
});
return View(result);
}
}
}
----------------سرویس
using Application.ShoppingTerminal.Interfaces.Contexts;
using Common.ShoppingTerminal.Dto;
using Domain.ShoppingTerminal.Entities.Buyers;
namespace Application.ShoppingTerminal.Services.Buyer.Commands.RegisterBuyer
{
public class RegisterBuyerService : IRegisterBuyerService
{
private readonly IDataBaseContext _context;
public RegisterBuyerService(IDataBaseContext context)
{
_context = context;
}
public ResultDto<ResultRegisterBuyerDto> Execute(RequestRegisterBuyerDto request)
{
Domain.ShoppingTerminal.Entities.Buyers.Buyer buyer= new()
{
Tob=request.Tob,
Bpc=request.Bpc,
TinB=request.TinB,
Bbc=request.Bbc,
Bpn=request.Bpn,
BAddress=request.BAddress,
BuyerName = request.BuyerName,
Bid=request.Bid,
};
_context.Buyers.Add(buyer);
_context.SaveChanges();
var result= new ResultDto<ResultRegisterBuyerDto>()
{
Data = new ResultRegisterBuyerDto()
{
BuyerId = buyer.BuyerId,
},
IsSuccess = true,
Message = "اطلاعات خریدار ثبت گردید"
};
return result;
}
}
}
- 1402/01/15
سلام و عرض تبریک سال نو.
خطای System.NullReferenceException در کد شما بخاطر این است که متغیر _registerBuyerService به صورت Null در زمان اجرا میباشد. این متغیر در constructor شما به صورت غلط ایجاد شده است. به جای نوشتن registerBuyerService = _registerBuyerService در constructor باید _registerBuyerService = registerBuyerService نوشته شود.
یعنی constructor درست باید به این صورت باشد:
public BuyerController(IRegisterBuyerService registerBuyerService, IDataBaseContext context)
{
_registerBuyerService = registerBuyerService;
_context = context;
}
پاسخی برای این باگ ارسال کنید
لطفا کدها را درون قطعه کد ارسال نمایید
برای ارسال پاسخ باید وارد حساب کاربری خود شوید
ورود به حساب کاربری